/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Mercado.view;

import Mercado.model.Estoque;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;

/**
 *
 * @author rafael
 */
public class Estoque_Panel extends JTabbedPane {
    
    public JPanel remItem, addItem, listaItens;
    public Mercado.controller.Estoque_controller controller;
    
    public Estoque_Panel(Estoque e){
        controller = new Mercado.controller.Estoque_controller(e);
        this.setTabPlacement(this.BOTTOM);
        listaItens  = aba_listaItems();
        addItem     = aba_addItem();
        remItem     = aba_remItem();
        this.addTab("Listar",listaItens);
        this.addTab("Adicionar",addItem);
        this.addTab("Remover",remItem);
    }

    public Estoque getE() {
        return controller.getE();
    }

    public void setE(Estoque e) {
        controller.setE(e);
    }

    private JPanel aba_listaItems() {
        JPanel lis = new JPanel();
        lis.setLayout(null);
        JLabel codigo       = new JLabel("Código");
        JLabel nome         = new JLabel("Nome");
        JLabel preco        = new JLabel("Preço Unitário");
        JLabel quantidade   = new JLabel("Quantidade");
        codigo.     setBounds(5,5,124,20);
        nome.       setBounds(160,5,124,20);
        preco.      setBounds(315,5,124,20);
        quantidade. setBounds(470,5,124,20);
        lis.addComponentListener(new ComponentListener() {
            @Override
            public void componentShown(ComponentEvent ev) {
                controller.atualizaTabela(lis);
            }
            @Override
            public void componentResized(ComponentEvent e) {}
            @Override
            public void componentMoved(ComponentEvent e) {}
            @Override
            public void componentHidden(ComponentEvent e) {}
        });
        
        lis.add(nome);
        lis.add(preco);
        lis.add(codigo);
        lis.add(quantidade);
        return lis;
    }

    private JPanel aba_addItem() {
        JPanel aba = new JPanel();
        aba.setLayout(null);
        ButtonGroup grupo = new ButtonGroup();
        JRadioButton  op1 = new JRadioButton("Novo produto");
        JRadioButton  op2 = new JRadioButton("Adicionar quantidade");
        JLabel  lbnome  = new JLabel("Nome");
        JLabel  lbpreco = new JLabel("Preço");
        JLabel  lbcod1  = new JLabel("Código");
        JLabel  lbqtd   = new JLabel("Quantidade");
        JLabel  lbcod2  = new JLabel("Código");
        JLabel  lbqtd2  = new JLabel("Quantidade");
        JTextField  tfnome  = new JTextField();
        JTextField  tfcod   = new JTextField();
        JTextField  tfpreco = new JTextField();
        JTextField  tfqtd   = new JTextField();
        JTextField  tfcod2  = new JTextField();
        JTextField  tfqtd2  = new JTextField();
        JButton     btAdd = new JButton("Inserir");
        JButton     btLimp = new JButton("Limpar");
        op1.    setBounds(10, 10, 130, 20);
        op2.    setBounds(320, 10, 200, 20);
        lbnome. setBounds(10, 30, 100, 20);
        lbcod1. setBounds(10, 50, 100, 20);
        lbqtd.  setBounds(10, 70, 100, 20);
        lbpreco.setBounds(10, 90, 100, 20);
        lbcod2. setBounds(320, 30, 100, 20);
        lbqtd2. setBounds(320, 50, 100, 20);
        tfnome. setBounds(120, 30, 190, 20);
        tfcod.  setBounds(120, 50, 190, 20);
        tfqtd.  setBounds(120, 70, 190, 20);
        tfpreco.setBounds(120, 90, 190, 20);
        tfcod2. setBounds(430, 30, 190, 20);
        tfqtd2. setBounds(430, 50, 190, 20);
        btAdd.  setBounds(10,120,300,20);
        btLimp.  setBounds(320,120,300,20);
        
        grupo.add(op1);
        grupo.add(op2);
        aba.add(op1);   //0
        aba.add(op2);   //1
        aba.add(tfnome);    //2
        aba.add(tfpreco);   //3
        aba.add(tfcod);     //4
        aba.add(tfqtd);     //5
        aba.add(tfcod2);    //6
        aba.add(tfqtd2);    //7
        aba.add(lbnome);
        aba.add(lbcod1);
        aba.add(lbcod2);
        aba.add(lbqtd);
        aba.add(lbqtd2);
        aba.add(lbpreco);
        aba.add(btAdd);
        aba.add(btLimp);
        
                
        op1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ev) {
                controller.alternaBotoes(aba);
            }
        });
        
        op2.addActionListener(op1.getActionListeners()[0]);
        op1.doClick();
        
        btAdd.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ev) {
                controller.addProduto(aba);
            }
        });
        
        btLimp.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                controller.limpaTela(aba);
            }
        });
        
        return aba;
    }

    private JPanel aba_remItem() {
        JPanel aba = new JPanel();
        aba.setLayout(null);
        JLabel lbCodigo = new JLabel("Código do Produto:");
        JLabel lbQtd = new JLabel("Quantidade:");
        JLabel lbAviso = new JLabel();
        JCheckBox cb = new JCheckBox("Remover Tudo");
        JTextField tfCodigo = new JTextField();
        JTextField tfQtd = new JTextField();
        JButton btOk = new JButton("Remover");
        
        lbCodigo.setBounds(10, 10, 200, 20);
        lbQtd.setBounds(30, 60, 200, 20);
        cb.setBounds(10, 35, 200, 20);
        tfCodigo.setBounds(160, 10, 450, 20);
        tfQtd.setBounds(160, 60, 450, 20);
        btOk.setBounds(10, 90, 610, 20);
        lbAviso.setBounds(250, 120, 300, 20);
        
        aba.add(tfCodigo);
        aba.add(tfQtd);
        aba.add(cb);
        aba.add(lbAviso);
        aba.add(lbQtd);
        aba.add(lbCodigo);
        aba.add(btOk);
        
        cb.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                controller.cbRemoveTudo(aba);
            }
        });
        cb.doClick();
        btOk.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                controller.remProduto(aba);
            }
        });
        
        return aba;
    }
}
